<?php
/**
 * util memberurl
 * @package app-member-shared_lib_util
 */
load_lib('/dao/dao');
load_lib('/util/member');
/**
 * util memberurl
 *
 * @author pandajingjing
 * @package app-member-shared_lib_util
 */
class util_memberurl{

	/**
	 * 获取用户中心登录接口URL
	 *
	 * @param string $p_strAppKey        	
	 * @param string $p_strAppSecret        	
	 * @param string $p_strReturnURL        	
	 * @param int $p_intCallTime    
	 * @param string $p_strCallType    	  
	 * @param array $p_arrCstParam   	
	 * @return string
	 */
	static function getLoginURL($p_strAppKey,$p_strAppSecret,$p_strReturnURL,$p_intCallTime,$p_strCallType,$p_arrCstParam){
		return self::getActURL('login',$p_strAppKey,$p_strAppSecret,$p_strReturnURL,$p_intCallTime,$p_strCallType,$p_arrCstParam);
	}

	/**
	 * 获取用户中心注册接口URL
	 *
	 * @param string $p_strAppKey        	
	 * @param string $p_strAppSecret        	
	 * @param string $p_strReturnURL        	
	 * @param int $p_intCallTime    
	 * @param string $p_strCallType    	
	 * @param array $p_arrCstParam     	
	 * @return string
	 */
	static function getRegURL($p_strAppKey,$p_strAppSecret,$p_strReturnURL,$p_intCallTime,$p_strCallType,$p_arrCstParam){
		return self::getActURL('reg',$p_strAppKey,$p_strAppSecret,$p_strReturnURL,$p_intCallTime,$p_strCallType,$p_arrCstParam);
	}

	/**
	 * 获取用户中心退出接口URL
	 *
	 * @param string $p_strAppKey        	
	 * @param string $p_strAppSecret        	
	 * @param string $p_strReturnURL        	
	 * @param int $p_intCallTime      	 
	 * @param array $p_arrCstParam    	
	 * @return string
	 */
	static function getLogoutURL($p_strAppKey,$p_strAppSecret,$p_strReturnURL,$p_intCallTime,$p_arrCstParam){
		return self::getActURL('logout',$p_strAppKey,$p_strAppSecret,$p_strReturnURL,$p_intCallTime,'',$p_arrCstParam);
	}

	/**
	 * 获取用户中心URL
	 *
	 * @param string $p_strAction        	
	 * @param string $p_strAppKey        	
	 * @param string $p_strAppSecret        	
	 * @param string $p_strReturnURL        	
	 * @param int $p_intCallTime  
	 * @param string $p_strCallType      	  
	 * @param array $p_arrCstParam     	
	 * @return string
	 */
	private static function getActURL($p_strAction,$p_strAppKey,$p_strAppSecret,$p_strReturnURL,$p_intCallTime,$p_strCallType,$p_arrCstParam){
		$strDomain=dao_dao::getConfig('member_domain','member');
		if('api'==$p_strCallType){
			$strPrefix='http://'.$strDomain.'/api';
		}else{
			$strPrefix='http://'.$strDomain.'/app';
		}
		//echo $p_strAppKey.'<hr />'.$p_strAppSecret.'<hr />'.$p_strReturnURL.'<hr />'.$p_intCallTime.'<hr />'.$p_strAPIType;
		return $strPrefix.param_to_url($p_strAction,array_merge(array( 
				'k'=>$p_strAppKey,
				's'=>util_member::mkAppSig($p_strAppKey,$p_strAppSecret,$p_intCallTime),
				't'=>$p_intCallTime,
				'u'=>base64_encode($p_strReturnURL),
				'as'=>util_member::mkActionSig($p_strAppSecret,$p_strReturnURL,$p_intCallTime) 
		),$p_arrCstParam));
	}

	/**
	 * 返回回调URL
	 * @param string $p_strAction
	 * @param string $p_strAppSecret  
	 * @param int $p_intUserID
	 * @param string $p_strUserName
	 * @param int $p_intCallTime
	 * @param array $p_arrParam
	 * @return string
	 */
	static function getCallBackURL($p_strAction,$p_strAppSecret,$p_intUserID,$p_strUserName,$p_intCallTime,$p_arrParam=array()){
		$arrParam=array();
		if(isset($p_arrParam['LASTUPD'])){
			$arrParam['upd']=$p_arrParam['LASTUPD'];
		}
		return param_to_url($p_strAction,array_merge(array( 
				'uid'=>$p_intUserID,
				'uname'=>$p_strUserName,
				't'=>$p_intCallTime,
				'as'=>util_member::mkCallBackSig($p_strAppSecret,$p_intUserID,$p_strUserName,$p_intCallTime) 
		),$arrParam));
	}
}